/*
 * Pessoa.java
 *
 * Created on 28 de Maio de 2007, 16:47
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.sicesumar.edmafer.entidades.users;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

/**
 * Classe de entidade Pessoa
 * 
 * @author edmafer
 */
@Entity
public class Pessoa implements Serializable {

    @OneToMany(mappedBy = "pessoa")
    private List<Conta> contas;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    
    private String nome;
    private String email;
    
    /** Creates a new instance of Pessoa */
    public Pessoa() {
    }

    /**
     * Define o id deste Pessoa.
     * @return o id
     */
    public Long getId() {
        return this.id;
    }

    /**
     * Define o id deste Pessoa para o valor especificado.
     * @param id o novo id
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * Retorna um valor de código hash para o objeto.  Esta implementação computa
     * um valor de código hash baseado nos campos id deste objeto.
     * @return um valor de código hash para este objeto.
     */
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (this.id != null ? this.id.hashCode() : 0);
        return hash;
    }

    /**
     * Determina se outro objeto é igual a este Pessoa.  O resultado é
     * <code>true</code> se e somente se o argumento não for nulo e for um objeto Pessoa o qual
     * tem o mesmo valor para o campo id como este objeto.
     * @param object o objeto de referência com o qual comparar
     * @return <code>true</code> se este objeto é o mesmo como o argumento;
     * <code>false</code> caso contrário.
     */
    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Pessoa)) {
            return false;
        }
        Pessoa other = (Pessoa)object;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) return false;
        return true;
    }

    /**
     * Retorna uma representação literal deste objeto.  Esta implementação cria
     * uma representação baseada nos campos id.
     * @return uma representação literal deste objeto.
     */
    @Override
    public String toString() {
        return "org.sicesumar.edmafer.entidades.users.Pessoa[id=" + id + "]";
    }    

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        if (nome != "") {
            this.nome = nome;
        }
    }    

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}
